object Version {
    const val SPRING = "2.5.8"

    const val JJWT = "0.9.1"

    /**
     * Panda的二方库，主要封装了常用的工具类的实体类
     * 内部依赖了jackson，所以这边不用显式的再依赖jackson了
     * */
    const val PANDA_COMMONS = "1.2.4"

    const val JETCACHE = "2.6.0"

    const val SERVLET = "4.0.1"

    const val RXJAVA = "3.0.12"

    const val REACTOR = "3.4.8"

    const val LOG4J2 = "2.15.0"

    const val JACKSON = "2.12.5"

    const val LOGBACK = "1.2.7"
    const val SLF4J = "1.7.32"

}

object Library {

    /**
     * jjwt是一个jwt的序列化和反序列化工具包
     * 实现了jwt的签发和验签功能
     * */
    const val JJWT = "io.jsonwebtoken:jjwt:${Version.JJWT}"

    /**
     * 工具类
     * */
    const val PANDA_BASE = "com.jxpanda.commons:commons-base:${Version.PANDA_COMMONS}"

    /**
     * 工具类
     * */
    const val PANDA_TOOLKIT = "com.jxpanda.commons:commons-toolkit:${Version.PANDA_COMMONS}"

    /**
     * 加密/解密的工具
     * */
    const val PANDA_ENCRYPT = "com.jxpanda.commons:commons-encrypt:${Version.PANDA_COMMONS}"

    const val SERVLET = "javax.servlet:javax.servlet-api:${Version.SERVLET}"

    /**
     * jetcache
     * */
    const val JETCACHE_ANNO = "com.alicp.jetcache:jetcache-anno:${Version.JETCACHE}"
    const val JETCACHE_LETTUCE = "com.alicp.jetcache:jetcache-redis-lettuce:${Version.JETCACHE}"

    /**
     *
     * */
    const val JACKSON_XML = "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${Version.JACKSON}"

    /**
     * RXJAVA
     * */
    const val RXJAVA = "io.reactivex.rxjava3:rxjava:${Version.RXJAVA}"

    /**
     * https://mvnrepository.com/artifact/io.projectreactor/reactor-core
     * */
    const val REACTOR = "io.projectreactor:reactor-core:${Version.REACTOR}"

    const val LOG4J2 = "org.apache.logging.log4j:log4j-core:${Version.LOG4J2}"
    const val LOG4J2_SLF4J = "org.apache.logging.log4j:log4j-slf4j-impl:${Version.LOG4J2}"

    const val LOGBACK_CORE = "ch.qos.logback:logback-core:${Version.LOGBACK}"
    const val LOGBACK_CLASSIC = "ch.qos.logback:logback-classic:${Version.LOGBACK}"
    const val SLF4J = "org.slf4j:slf4j-api:${Version.LOGBACK}"

}

/**
 * spring的依赖
 * 分开写是为了避免眼花
 * */
object SpringLibrary {
    const val SPRING_BOOT = "org.springframework.boot:spring-boot-starter:${Version.SPRING}"
    const val WEBFLUX = "org.springframework.boot:spring-boot-starter-webflux:${Version.SPRING}"
    const val SECURITY = "org.springframework.boot:spring-boot-starter-security:${Version.SPRING}"
    const val CONFIGURATION_PROCESSOR = "org.springframework.boot:spring-boot-configuration-processor:${Version.SPRING}"
    const val REDIS = "org.springframework.boot:spring-boot-starter-data-redis:${Version.SPRING}"
}
